package Z.dailyExercise.March;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.TreeMap;

public class _剑指Offer26树的子结构 {
    /**
     * 题解：先序遍历判断
     * true 的情况
     *  当前节点相等| 左边相等| 右边相等
     *
     *  当前a节点不满足 递归左子树 或者右子树
     * @param A
     * @param B
     * @return
     */
    //用于递归A的
    public boolean isSubStructure(TreeNode A, TreeNode B) {
        if (A == null || B==null){
            return false;
        }

        return helper(A,B) || isSubStructure(A.left,B) || isSubStructure(A.right,B);


    }

    //用于递归B的

    public boolean helper(TreeNode A,TreeNode B){
       if (B == null){
           return true;
       }

       if (A== null || A.val != B.val){
           return false;
       }

       return helper(A.left,B.left) && helper(A.right,B.right);


    }
}
